#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 初始化listWidget
    // ui->listWidget->addItem(QString("C++"));
    // ui->listWidget->addItem(QString("Java"));
    // ui->listWidget->addItem(QString("Python"));
    // QListWidgetItem也可以支持图片,字体属性,图标,设置选中状态等操作
    ui->listWidget->addItem(new QListWidgetItem("C++"));
    ui->listWidget->addItem(new QListWidgetItem("Java"));
    ui->listWidget->addItem(new QListWidgetItem("Python"));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_insert_clicked()
{
    // 1. 先获取到输入框中的内容
    const QString& text = ui->lineEdit->text();
    // 2. 追加到listWidget中
    ui->listWidget->addItem(new QListWidgetItem(text));
}

void Widget::on_pushButton_delete_clicked()
{
    // 1. 获取到被选中的元素所在行
    int row = ui->listWidget->currentRow();
    if (row < 0) {
        return;
    }
    // 2. 按行号删除对应元素
    ui->listWidget->takeItem(row);
}

void Widget::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
    // 通过槽函数感知到选中的变化
    if(current) {
        qDebug() << "当前选中的元素: " << current->text();
    }
    if(previous) {
        qDebug() << "上次选中的元素: " << previous->text();
    }
}

